"""
魔法方法是python面向对象的 高阶知识
魔法方法都是 双下划线开始双下划线结束
可以说, python的面向对象的构成都是由这些 魔法方法 所堆砌而成.
所以说, 每个生产出来的对象都会具备所有的 魔法方法
你可以自定义去重写这些魔法方法, 也可以就这么滴. 一般初学者只会用到其中的 __init__
其他魔法方法就先由他们去吧, 等我们逐步掌握好python后, 再来研究他们.
下面就介绍一下 __init__
这个魔法方法, 主要是用来 初始化对象属性
之前我们的例子中, 有车子有人类, 但是我们都是在创建它们之后才去修改它们的 实例属性
这种方式通常来说是不会看到的, 因为我们可以使用 __init__来帮我们做这件事
__init__属于 实例方法 所以会接收一个参数 self
"""

# class Human():
#     def __init__(self):
#         self.name = "jack"
#
#     def info(self):
#         print(self.name)
#
# jack = Human()
# jack.info()

class Human():
    hands = True
    feet = True

    def __init__(self, name, sex, age):
        self.name = name
        self.sex = sex
        self.age = age

    def info(self):
        print(self.name)
        print(self.sex)
        print(self.age)

jack = Human('jack', 'male', 18) # __init__的参数必须要在实例化对象的时候传入类中
rose = Human('rose', 'female', 19)

jack.info()
rose.info()

# __str__
# https://walker_kwu.gitee.io/my-blog/2023/03/11/python/base/python%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%EF%BC%88%E4%B8%8A%EF%BC%89/#%E7%B1%BB%E5%B1%9E%E6%80%A7